<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>SmilesDrawer - Documentation</title>

    <script src="scripts/prettify/prettify.js"></script>
    <script src="scripts/prettify/lang-css.js"></script>
    <!--[if lt IE 9]>
      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <link type="text/css" rel="stylesheet" href="styles/prettify.css">
    <link type="text/css" rel="stylesheet" href="styles/jsdoc.css">
</head>
<body>

<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger" class="navicon-button x">
  <div class="navicon"></div>
</label>

<label for="nav-trigger" class="overlay"></label>

<nav>
    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="ArrayHelper.html">ArrayHelper</a><ul class='methods'><li data-type='method'><a href="ArrayHelper.html#.clone">clone</a></li><li data-type='method'><a href="ArrayHelper.html#.contains">contains</a></li><li data-type='method'><a href="ArrayHelper.html#.containsAll">containsAll</a></li><li data-type='method'><a href="ArrayHelper.html#.count">count</a></li><li data-type='method'><a href="ArrayHelper.html#.deepCopy">deepCopy</a></li><li data-type='method'><a href="ArrayHelper.html#.each">each</a></li><li data-type='method'><a href="ArrayHelper.html#.get">get</a></li><li data-type='method'><a href="ArrayHelper.html#.intersection">intersection</a></li><li data-type='method'><a href="ArrayHelper.html#.merge">merge</a></li><li data-type='method'><a href="ArrayHelper.html#.print">print</a></li><li data-type='method'><a href="ArrayHelper.html#.remove">remove</a></li><li data-type='method'><a href="ArrayHelper.html#.removeAll">removeAll</a></li><li data-type='method'><a href="ArrayHelper.html#.removeUnique">removeUnique</a></li><li data-type='method'><a href="ArrayHelper.html#.sortByAtomicNumberDesc">sortByAtomicNumberDesc</a></li><li data-type='method'><a href="ArrayHelper.html#.toggle">toggle</a></li><li data-type='method'><a href="ArrayHelper.html#.unique">unique</a></li></ul></li><li><a href="Atom.html">Atom</a><ul class='methods'><li data-type='method'><a href="Atom.html#.getDuplicateAtomicNumbers">getDuplicateAtomicNumbers</a></li><li data-type='method'><a href="Atom.html#.hasDuplicateAtomicNumbers">hasDuplicateAtomicNumbers</a></li><li data-type='method'><a href="Atom.html#.sortByAtomicNumber">sortByAtomicNumber</a></li><li data-type='method'><a href="Atom.html#addAnchoredRing">addAnchoredRing</a></li><li data-type='method'><a href="Atom.html#addNeighbouringElement">addNeighbouringElement</a></li><li data-type='method'><a href="Atom.html#attachPseudoElement">attachPseudoElement</a></li><li data-type='method'><a href="Atom.html#backupRings">backupRings</a></li><li data-type='method'><a href="Atom.html#canRotate">canRotate</a></li><li data-type='method'><a href="Atom.html#getAtomicNumber">getAtomicNumber</a></li><li data-type='method'><a href="Atom.html#getAttachedPseudoElements">getAttachedPseudoElements</a></li><li data-type='method'><a href="Atom.html#getAttachedPseudoElementsCount">getAttachedPseudoElementsCount</a></li><li data-type='method'><a href="Atom.html#getMaxRingbond">getMaxRingbond</a></li><li data-type='method'><a href="Atom.html#getOrder">getOrder</a></li><li data-type='method'><a href="Atom.html#getRingbondCount">getRingbondCount</a></li><li data-type='method'><a href="Atom.html#hasRing">hasRing</a></li><li data-type='method'><a href="Atom.html#hasRingbonds">hasRingbonds</a></li><li data-type='method'><a href="Atom.html#haveCommonRingbond">haveCommonRingbond</a></li><li data-type='method'><a href="Atom.html#isInRing">isInRing</a></li><li data-type='method'><a href="Atom.html#maxCommonRingbond">maxCommonRingbond</a></li><li data-type='method'><a href="Atom.html#neighbouringElementsEqual">neighbouringElementsEqual</a></li><li data-type='method'><a href="Atom.html#restoreRings">restoreRings</a></li><li data-type='method'><a href="Atom.html#setOrder">setOrder</a></li></ul></li><li><a href="CanvasWrapper.html">CanvasWrapper</a><ul class='methods'><li data-type='method'><a href="CanvasWrapper.html#clear">clear</a></li><li data-type='method'><a href="CanvasWrapper.html#drawAromaticityRing">drawAromaticityRing</a></li><li data-type='method'><a href="CanvasWrapper.html#drawBall">drawBall</a></li><li data-type='method'><a href="CanvasWrapper.html#drawCircle">drawCircle</a></li><li data-type='method'><a href="CanvasWrapper.html#drawDashedWedge">drawDashedWedge</a></li><li data-type='method'><a href="CanvasWrapper.html#drawDebugPoint">drawDebugPoint</a></li><li data-type='method'><a href="CanvasWrapper.html#drawDebugText">drawDebugText</a></li><li data-type='method'><a href="CanvasWrapper.html#drawLine">drawLine</a></li><li data-type='method'><a href="CanvasWrapper.html#drawText">drawText</a></li><li data-type='method'><a href="CanvasWrapper.html#drawWedge">drawWedge</a></li><li data-type='method'><a href="CanvasWrapper.html#getColor">getColor</a></li><li data-type='method'><a href="CanvasWrapper.html#reset">reset</a></li><li data-type='method'><a href="CanvasWrapper.html#scale">scale</a></li><li data-type='method'><a href="CanvasWrapper.html#setTheme">setTheme</a></li><li data-type='method'><a href="CanvasWrapper.html#updateSize">updateSize</a></li></ul></li><li><a href="Edge.html">Edge</a><ul class='methods'><li data-type='method'><a href="Edge.html#getBondCount">getBondCount</a></li></ul></li><li><a href="Graph.html">Graph</a><ul class='methods'><li data-type='method'><a href="Graph.html#._ccCountDfs">_ccCountDfs</a></li><li data-type='method'><a href="Graph.html#.getConnectedComponentCount">getConnectedComponentCount</a></li><li data-type='method'><a href="Graph.html#_bridgeDfs">_bridgeDfs</a></li><li data-type='method'><a href="Graph.html#addEdge">addEdge</a></li><li data-type='method'><a href="Graph.html#addVertex">addVertex</a></li><li data-type='method'><a href="Graph.html#clear">clear</a></li><li data-type='method'><a href="Graph.html#getAdjacencyList">getAdjacencyList</a></li><li data-type='method'><a href="Graph.html#getAdjacencyMatrix">getAdjacencyMatrix</a></li><li data-type='method'><a href="Graph.html#getBridges">getBridges</a></li><li data-type='method'><a href="Graph.html#getComponentsAdjacencyMatrix">getComponentsAdjacencyMatrix</a></li><li data-type='method'><a href="Graph.html#getEdge">getEdge</a></li><li data-type='method'><a href="Graph.html#getEdgeList">getEdgeList</a></li><li data-type='method'><a href="Graph.html#getLargestCycleInSubgraph">getLargestCycleInSubgraph</a></li><li data-type='method'><a href="Graph.html#getSubgraphAdjacencyList">getSubgraphAdjacencyList</a></li><li data-type='method'><a href="Graph.html#getSubgraphAdjacencyMatrix">getSubgraphAdjacencyMatrix</a></li><li data-type='method'><a href="Graph.html#getVertexList">getVertexList</a></li><li data-type='method'><a href="Graph.html#hasEdge">hasEdge</a></li></ul></li><li><a href="Hanser.html">Hanser</a></li><li><a href="Line.html">Line</a><ul class='methods'><li data-type='method'><a href="Line.html#clone">clone</a></li><li data-type='method'><a href="Line.html#getAngle">getAngle</a></li><li data-type='method'><a href="Line.html#getLeftChiral">getLeftChiral</a></li><li data-type='method'><a href="Line.html#getLeftElement">getLeftElement</a></li><li data-type='method'><a href="Line.html#getLeftVector">getLeftVector</a></li><li data-type='method'><a href="Line.html#getLength">getLength</a></li><li data-type='method'><a href="Line.html#getNormals">getNormals</a></li><li data-type='method'><a href="Line.html#getRightChiral">getRightChiral</a></li><li data-type='method'><a href="Line.html#getRightElement">getRightElement</a></li><li data-type='method'><a href="Line.html#getRightVector">getRightVector</a></li><li data-type='method'><a href="Line.html#rotate">rotate</a></li><li data-type='method'><a href="Line.html#rotateToXAxis">rotateToXAxis</a></li><li data-type='method'><a href="Line.html#setLeftVector">setLeftVector</a></li><li data-type='method'><a href="Line.html#setRightVector">setRightVector</a></li><li data-type='method'><a href="Line.html#shorten">shorten</a></li><li data-type='method'><a href="Line.html#shortenFrom">shortenFrom</a></li><li data-type='method'><a href="Line.html#shortenLeft">shortenLeft</a></li><li data-type='method'><a href="Line.html#shortenRight">shortenRight</a></li><li data-type='method'><a href="Line.html#shortenTo">shortenTo</a></li></ul></li><li><a href="MathHelper.html">MathHelper</a><ul class='methods'><li data-type='method'><a href="MathHelper.html#.apothem">apothem</a></li><li data-type='method'><a href="MathHelper.html#.centralAngle">centralAngle</a></li><li data-type='method'><a href="MathHelper.html#.innerAngle">innerAngle</a></li><li data-type='method'><a href="MathHelper.html#.meanAngle">meanAngle</a></li><li data-type='method'><a href="MathHelper.html#.polyCircumradius">polyCircumradius</a></li><li data-type='method'><a href="MathHelper.html#.round">round</a></li><li data-type='method'><a href="MathHelper.html#.toDeg">toDeg</a></li><li data-type='method'><a href="MathHelper.html#.toRad">toRad</a></li></ul></li><li><a href="Ring.html">Ring</a><ul class='methods'><li data-type='method'><a href="Ring.html#.getRing">getRing</a></li><li data-type='method'><a href="Ring.html#allowsFlip">allowsFlip</a></li><li data-type='method'><a href="Ring.html#clone">clone</a></li><li data-type='method'><a href="Ring.html#contains">contains</a></li><li data-type='method'><a href="Ring.html#eachMember">eachMember</a></li><li data-type='method'><a href="Ring.html#getAngle">getAngle</a></li><li data-type='method'><a href="Ring.html#getDoubleBondCount">getDoubleBondCount</a></li><li data-type='method'><a href="Ring.html#getOrderedNeighbours">getOrderedNeighbours</a></li><li data-type='method'><a href="Ring.html#getPolygon">getPolygon</a></li><li data-type='method'><a href="Ring.html#getSize">getSize</a></li><li data-type='method'><a href="Ring.html#isBenzeneLike">isBenzeneLike</a></li><li data-type='method'><a href="Ring.html#setFlipped">setFlipped</a></li><li data-type='method'><a href="Ring.html#thisOrNeighboursContain">thisOrNeighboursContain</a></li></ul></li><li><a href="RingConnection.html">RingConnection</a><ul class='methods'><li data-type='method'><a href="RingConnection.html#.getNeighbours">getNeighbours</a></li><li data-type='method'><a href="RingConnection.html#.getVertices">getVertices</a></li><li data-type='method'><a href="RingConnection.html#.isBridge">isBridge</a></li><li data-type='method'><a href="RingConnection.html#addVertex">addVertex</a></li><li data-type='method'><a href="RingConnection.html#isBridge">isBridge</a></li><li data-type='method'><a href="RingConnection.html#updateOther">updateOther</a></li></ul></li><li><a href="SmilesDrawer.html">SmilesDrawer</a><ul class='methods'><li data-type='method'><a href="SmilesDrawer.html#.apply">apply</a></li><li data-type='method'><a href="SmilesDrawer.html#.clean">clean</a></li><li data-type='method'><a href="SmilesDrawer.html#.parse">parse</a></li><li data-type='method'><a href="SmilesDrawer.html#addRing">addRing</a></li><li data-type='method'><a href="SmilesDrawer.html#addRingConnection">addRingConnection</a></li><li data-type='method'><a href="SmilesDrawer.html#areConnected">areConnected</a></li><li data-type='method'><a href="SmilesDrawer.html#areVerticesInSameRing">areVerticesInSameRing</a></li><li data-type='method'><a href="SmilesDrawer.html#backupRingInformation">backupRingInformation</a></li><li data-type='method'><a href="SmilesDrawer.html#chooseSide">chooseSide</a></li><li data-type='method'><a href="SmilesDrawer.html#clearPositions">clearPositions</a></li><li data-type='method'><a href="SmilesDrawer.html#createBridgedRing">createBridgedRing</a></li><li data-type='method'><a href="SmilesDrawer.html#createNextBond">createNextBond</a></li><li data-type='method'><a href="SmilesDrawer.html#createRing">createRing</a></li><li data-type='method'><a href="SmilesDrawer.html#draw">draw</a></li><li data-type='method'><a href="SmilesDrawer.html#drawEdges">drawEdges</a></li><li data-type='method'><a href="SmilesDrawer.html#drawVertices">drawVertices</a></li><li data-type='method'><a href="SmilesDrawer.html#edgeRingCount">edgeRingCount</a></li><li data-type='method'><a href="SmilesDrawer.html#extend">extend</a></li><li data-type='method'><a href="SmilesDrawer.html#forceLayout">forceLayout</a></li><li data-type='method'><a href="SmilesDrawer.html#getBondCount">getBondCount</a></li><li data-type='method'><a href="SmilesDrawer.html#getBridgedRingRings">getBridgedRingRings</a></li><li data-type='method'><a href="SmilesDrawer.html#getBridgedRings">getBridgedRings</a></li><li data-type='method'><a href="SmilesDrawer.html#getClosestEndpointVertex">getClosestEndpointVertex</a></li><li data-type='method'><a href="SmilesDrawer.html#getClosestVertex">getClosestVertex</a></li><li data-type='method'><a href="SmilesDrawer.html#getCommonRingbondNeighbour">getCommonRingbondNeighbour</a></li><li data-type='method'><a href="SmilesDrawer.html#getCommonRings">getCommonRings</a></li><li data-type='method'><a href="SmilesDrawer.html#getCurrentCenterOfMass">getCurrentCenterOfMass</a></li><li data-type='method'><a href="SmilesDrawer.html#getCurrentCenterOfMassInNeigbourhood">getCurrentCenterOfMassInNeigbourhood</a></li><li data-type='method'><a href="SmilesDrawer.html#getEdgeNormals">getEdgeNormals</a></li><li data-type='method'><a href="SmilesDrawer.html#getEdgeWeight">getEdgeWeight</a></li><li data-type='method'><a href="SmilesDrawer.html#getFusedRings">getFusedRings</a></li><li data-type='method'><a href="SmilesDrawer.html#getHeavyAtomCount">getHeavyAtomCount</a></li><li data-type='method'><a href="SmilesDrawer.html#getLargestOrAromaticCommonRing">getLargestOrAromaticCommonRing</a></li><li data-type='method'><a href="SmilesDrawer.html#getNonRingNeighbours">getNonRingNeighbours</a></li><li data-type='method'><a href="SmilesDrawer.html#getOverlapScore">getOverlapScore</a></li><li data-type='method'><a href="SmilesDrawer.html#getRing">getRing</a></li><li data-type='method'><a href="SmilesDrawer.html#getRingbondType">getRingbondType</a></li><li data-type='method'><a href="SmilesDrawer.html#getRingConnections">getRingConnections</a></li><li data-type='method'><a href="SmilesDrawer.html#getRingCount">getRingCount</a></li><li data-type='method'><a href="SmilesDrawer.html#getSmallestCommonRing">getSmallestCommonRing</a></li><li data-type='method'><a href="SmilesDrawer.html#getSpiros">getSpiros</a></li><li data-type='method'><a href="SmilesDrawer.html#getSubringCenter">getSubringCenter</a></li><li data-type='method'><a href="SmilesDrawer.html#getSubtreeOverlapScore">getSubtreeOverlapScore</a></li><li data-type='method'><a href="SmilesDrawer.html#getTotalOverlapScore">getTotalOverlapScore</a></li><li data-type='method'><a href="SmilesDrawer.html#getTreeDepth">getTreeDepth</a></li><li data-type='method'><a href="SmilesDrawer.html#getVerticesAt">getVerticesAt</a></li><li data-type='method'><a href="SmilesDrawer.html#hasBridgedRing">hasBridgedRing</a></li><li data-type='method'><a href="SmilesDrawer.html#initGraph">initGraph</a></li><li data-type='method'><a href="SmilesDrawer.html#initPseudoElements">initPseudoElements</a></li><li data-type='method'><a href="SmilesDrawer.html#initRings">initRings</a></li><li data-type='method'><a href="SmilesDrawer.html#isEdgeInAromaticRing">isEdgeInAromaticRing</a></li><li data-type='method'><a href="SmilesDrawer.html#isEdgeInRing">isEdgeInRing</a></li><li data-type='method'><a href="SmilesDrawer.html#isEdgeRotatable">isEdgeRotatable</a></li><li data-type='method'><a href="SmilesDrawer.html#isPartOfBridgedRing">isPartOfBridgedRing</a></li><li data-type='method'><a href="SmilesDrawer.html#isPointInRing">isPointInRing</a></li><li data-type='method'><a href="SmilesDrawer.html#isRingAromatic">isRingAromatic</a></li><li data-type='method'><a href="SmilesDrawer.html#isRingConnection">isRingConnection</a></li><li data-type='method'><a href="SmilesDrawer.html#position">position</a></li><li data-type='method'><a href="SmilesDrawer.html#printRingInfo">printRingInfo</a></li><li data-type='method'><a href="SmilesDrawer.html#removeRing">removeRing</a></li><li data-type='method'><a href="SmilesDrawer.html#removeRingConnection">removeRingConnection</a></li><li data-type='method'><a href="SmilesDrawer.html#removeRingConnectionsBetween">removeRingConnectionsBetween</a></li><li data-type='method'><a href="SmilesDrawer.html#resolvePrimaryOverlaps">resolvePrimaryOverlaps</a></li><li data-type='method'><a href="SmilesDrawer.html#resolveSecondaryOverlaps">resolveSecondaryOverlaps</a></li><li data-type='method'><a href="SmilesDrawer.html#restorePositions">restorePositions</a></li><li data-type='method'><a href="SmilesDrawer.html#restoreRingInformation">restoreRingInformation</a></li><li data-type='method'><a href="SmilesDrawer.html#rotateSubtree">rotateSubtree</a></li><li data-type='method'><a href="SmilesDrawer.html#traverseTree">traverseTree</a></li></ul></li><li><a href="SSSR.html">SSSR</a><ul class='methods'><li data-type='method'><a href="SSSR.html#.areSetsEqual">areSetsEqual</a></li><li data-type='method'><a href="SSSR.html#.bondsToAtoms">bondsToAtoms</a></li><li data-type='method'><a href="SSSR.html#.getEdgeCount">getEdgeCount</a></li><li data-type='method'><a href="SSSR.html#.getEdgeList">getEdgeList</a></li><li data-type='method'><a href="SSSR.html#.getPathIncludedDistanceMatrices">getPathIncludedDistanceMatrices</a></li><li data-type='method'><a href="SSSR.html#.getRingCandidates">getRingCandidates</a></li><li data-type='method'><a href="SSSR.html#.getRings">getRings</a></li><li data-type='method'><a href="SSSR.html#.getSSSR">getSSSR</a></li><li data-type='method'><a href="SSSR.html#.isSupersetOf">isSupersetOf</a></li><li data-type='method'><a href="SSSR.html#.matrixToString">matrixToString</a></li><li data-type='method'><a href="SSSR.html#.pathSetsContain">pathSetsContain</a></li></ul></li><li><a href="Vector2.html">Vector2</a><ul class='methods'><li data-type='method'><a href="Vector2.html#add">add</a></li><li data-type='method'><a href="Vector2.html#angle">angle</a></li><li data-type='method'><a href="Vector2.html#clockwise">clockwise</a></li><li data-type='method'><a href="Vector2.html#clone">clone</a></li><li data-type='method'><a href="Vector2.html#distance">distance</a></li><li data-type='method'><a href="Vector2.html#distanceSq">distanceSq</a></li><li data-type='method'><a href="Vector2.html#divide">divide</a></li><li data-type='method'><a href="Vector2.html#getRotateAwayFromAngle">getRotateAwayFromAngle</a></li><li data-type='method'><a href="Vector2.html#getRotateToAngle">getRotateToAngle</a></li><li data-type='method'><a href="Vector2.html#getRotateTowardsAngle">getRotateTowardsAngle</a></li><li data-type='method'><a href="Vector2.html#invert">invert</a></li><li data-type='method'><a href="Vector2.html#isInPolygon">isInPolygon</a></li><li data-type='method'><a href="Vector2.html#length">length</a></li><li data-type='method'><a href="Vector2.html#multiply">multiply</a></li><li data-type='method'><a href="Vector2.html#multiplyScalar">multiplyScalar</a></li><li data-type='method'><a href="Vector2.html#normalize">normalize</a></li><li data-type='method'><a href="Vector2.html#normalized">normalized</a></li><li data-type='method'><a href="Vector2.html#rotate">rotate</a></li><li data-type='method'><a href="Vector2.html#rotateAround">rotateAround</a></li><li data-type='method'><a href="Vector2.html#rotateAwayFrom">rotateAwayFrom</a></li><li data-type='method'><a href="Vector2.html#rotateTo">rotateTo</a></li><li data-type='method'><a href="Vector2.html#sameSideAs">sameSideAs</a></li><li data-type='method'><a href="Vector2.html#subtract">subtract</a></li><li data-type='method'><a href="Vector2.html#toString">toString</a></li><li data-type='method'><a href="Vector2.html#whichSide">whichSide</a></li><li data-type='method'><a href="Vector2.html#.add">add</a></li><li data-type='method'><a href="Vector2.html#.angle">angle</a></li><li data-type='method'><a href="Vector2.html#.divide">divide</a></li><li data-type='method'><a href="Vector2.html#.dot">dot</a></li><li data-type='method'><a href="Vector2.html#.midpoint">midpoint</a></li><li data-type='method'><a href="Vector2.html#.multiply">multiply</a></li><li data-type='method'><a href="Vector2.html#.multiplyScalar">multiplyScalar</a></li><li data-type='method'><a href="Vector2.html#.normals">normals</a></li><li data-type='method'><a href="Vector2.html#.scalarProjection">scalarProjection</a></li><li data-type='method'><a href="Vector2.html#.subtract">subtract</a></li><li data-type='method'><a href="Vector2.html#.threePointangle">threePointangle</a></li><li data-type='method'><a href="Vector2.html#.units">units</a></li></ul></li><li><a href="Vertex.html">Vertex</a><ul class='methods'><li data-type='method'><a href="Vertex.html#addChild">addChild</a></li><li data-type='method'><a href="Vertex.html#clone">clone</a></li><li data-type='method'><a href="Vertex.html#equals">equals</a></li><li data-type='method'><a href="Vertex.html#getAngle">getAngle</a></li><li data-type='method'><a href="Vertex.html#getCommonNeighbours">getCommonNeighbours</a></li><li data-type='method'><a href="Vertex.html#getDrawnNeighbours">getDrawnNeighbours</a></li><li data-type='method'><a href="Vertex.html#getNeighbourCount">getNeighbourCount</a></li><li data-type='method'><a href="Vertex.html#getNeighbours">getNeighbours</a></li><li data-type='method'><a href="Vertex.html#getNextInRing">getNextInRing</a></li><li data-type='method'><a href="Vertex.html#getSpanningTreeNeighbours">getSpanningTreeNeighbours</a></li><li data-type='method'><a href="Vertex.html#getTextDirection">getTextDirection</a></li><li data-type='method'><a href="Vertex.html#isNeighbour">isNeighbour</a></li><li data-type='method'><a href="Vertex.html#isTerminal">isTerminal</a></li><li data-type='method'><a href="Vertex.html#setParentVertexId">setParentVertexId</a></li><li data-type='method'><a href="Vertex.html#setPosition">setPosition</a></li><li data-type='method'><a href="Vertex.html#setPositionFromVector">setPositionFromVector</a></li></ul></li></ul>
</nav>

<div id="main">
    
    <h1 class="page-title">SmilesDrawer</h1>
    

    




<section>

<header>
    
        <h2>
        SmilesDrawer
        </h2>
        
            <div class="class-description"><p>The main class of the application representing the smiles drawer</p></div>
        
    
</header>

<article>
    <div class="container-overview">
    
        

    
    <h2>Constructor</h2>
    

    <h4 class="name" id="SmilesDrawer"><span class="type-signature"></span>new SmilesDrawer<span class="signature">(options)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line2">line 2</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>The constructor for the class SmilesDrawer.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>options</code></td>
            

            <td class="type">
            
                
<span class="param-type">object</span>


            
            </td>

            

            

            <td class="description last"><p>An object containing custom values for different options. It is merged with the default options.</p></td>
        </tr>

    
    </tbody>
</table>
















    
    </div>

    

    

    

     

    

    

    
        <h3 class="subsection-title">Methods</h3>

        
            

    

    <h4 class="name" id=".apply"><span class="type-signature">(static) </span>apply<span class="signature">(options, themeName<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line3365">line 3365</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Applies the smiles drawer draw function to each canvas element that has a smiles string in the data-smiles attribute.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        
        <th>Default</th>
        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>options</code></td>
            

            <td class="type">
            
                
<span class="param-type">objects</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>SmilesDrawer options.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>themeName</code></td>
            

            <td class="type">
            
                
<span class="param-type">string</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    <code>'light'</code>
                
                </td>
            

            <td class="description last"><p>The theme to apply.</p></td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id=".clean"><span class="type-signature">(static) </span>clean<span class="signature">(smiles)</span><span class="type-signature"> &rarr; {string}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line3354">line 3354</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Cleans a SMILES string (removes non-valid characters)</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>smiles</code></td>
            

            <td class="type">
            
                
<span class="param-type">string</span>


            
            </td>

            

            

            <td class="description last"><p>A SMILES string.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The clean SMILES string.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">string</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id=".parse"><span class="type-signature">(static) </span>parse<span class="signature">(smiles, successCallback, errorCallback)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line3386">line 3386</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Parses the entered smiles string.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>smiles</code></td>
            

            <td class="type">
            
                
<span class="param-type">string</span>


            
            </td>

            

            

            <td class="description last"><p>A SMILES string.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>successCallback</code></td>
            

            <td class="type">
            
                
<span class="param-type">function</span>


            
            </td>

            

            

            <td class="description last"><p>A callback that is called on success with the parse tree.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>errorCallback</code></td>
            

            <td class="type">
            
                
<span class="param-type">function</span>


            
            </td>

            

            

            <td class="description last"><p>A callback that is called with the error object on error.</p></td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id="addRing"><span class="type-signature"></span>addRing<span class="signature">(ring)</span><span class="type-signature"> &rarr; {number}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line1032">line 1032</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Add a ring to this representation of a molecule.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ring</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Ring.html">Ring</a></span>


            
            </td>

            

            

            <td class="description last"><p>A new ring.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The ring id of the new ring.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">number</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="addRingConnection"><span class="type-signature"></span>addRingConnection<span class="signature">(ringConnection)</span><span class="type-signature"> &rarr; {number}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line1083">line 1083</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Add a ring connection to this representation of a molecule.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ringConnection</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="RingConnection.html">RingConnection</a></span>


            
            </td>

            

            

            <td class="description last"><p>A new ringConnection.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The ring connection id of the new ring connection.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">number</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="areConnected"><span class="type-signature"></span>areConnected<span class="signature">(vertexIdA, vertexIdA)</span><span class="type-signature"> &rarr; {boolean}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line1318">line 1318</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Checks whether or not two vertices are connected.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexIdA</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertexIdA</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A boolean indicating whether or not two vertices are connected.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">boolean</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="areVerticesInSameRing"><span class="type-signature"></span>areVerticesInSameRing<span class="signature">(vertexA, vertexB)</span><span class="type-signature"> &rarr; {boolean}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line808">line 808</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Checks whether or not two vertices are in the same ring.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexA</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertexB</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A boolean indicating whether or not the two vertices are in the same ring.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">boolean</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="backupRingInformation"><span class="type-signature"></span>backupRingInformation<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line2076">line 2076</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Stores the current information associated with rings.</p>
</div>

























        
            

    

    <h4 class="name" id="chooseSide"><span class="type-signature"></span>chooseSide<span class="signature">(vertexA, vertexB, sides)</span><span class="type-signature"> &rarr; {object}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line1263">line 1263</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>When drawing a double bond, choose the side to place the double bond. E.g. a double bond should always been drawn inside a ring.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexA</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertexB</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>sides</code></td>
            

            <td class="type">
            
                
<span class="param-type">array</span>


            
            </td>

            

            

            <td class="description last"><p>An array containing the two normals of the line spanned by the two provided vertices.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>Returns an object containing the following information: {
            totalSideCount: Counts the sides of each vertex in the molecule, is an array [ a, b ],
            totalPosition: Same as position, but based on entire molecule,
            sideCount: Counts the sides of each neighbour, is an array [ a, b ],
            position: which side to position the second bond, is 0 or 1, represents the index in the normal array. This is based on only the neighbours
            anCount: the number of neighbours of vertexA,
            bnCount: the number of neighbours of vertexB
        }</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">object</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="clearPositions"><span class="type-signature"></span>clearPositions<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line2035">line 2035</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Reset the positions of rings and vertices. The previous positions will be backed up.</p>
</div>

























        
            

    

    <h4 class="name" id="createBridgedRing"><span class="type-signature"></span>createBridgedRing<span class="signature">(ringIds, sourceVertexId)</span><span class="type-signature"> &rarr; {<a href="Ring.html">Ring</a>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line663">line 663</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Creates a bridged ring.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ringIds</code></td>
            

            <td class="type">
            
                
<span class="param-type">array</span>


            
            </td>

            

            

            <td class="description last"><p>An array of ids of rings involved in the bridged ring.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>sourceVertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>The vertex id to start the bridged ring discovery from.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The bridged ring.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="Ring.html">Ring</a></span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="createNextBond"><span class="type-signature"></span>createNextBond<span class="signature">(vertex, previousVertex, ringOrAngle, dir)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line2586">line 2586</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Positiones the next vertex thus creating a bond.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertex</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>previousVertex</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>The previous vertex which has been positioned.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>ringOrAngle</code></td>
            

            <td class="type">
            
                
<span class="param-type">ring</span>
|

<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>Either a ring or a number. If the vertex is connected to a ring, it is positioned based on the ring center and thus the ring is supplied. If the vertex is not in a ring, an angle (in radians) is supplied.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>dir</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>Either 1 or -1 to break ties (if no angle can be elucidated.</p></td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id="createRing"><span class="type-signature"></span>createRing<span class="signature">(ring, center<span class="signature-attributes">opt</span>, startVertex<span class="signature-attributes">opt</span>, previousVertex<span class="signature-attributes">opt</span>, previousVertex<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line2137">line 2137</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Creates a new ring, that is, positiones all the vertices inside a ring.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        
        <th>Default</th>
        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ring</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Ring.html">Ring</a></span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>The ring to position.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>center</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vector2.html">Vector2</a></span>
|

<span class="param-type">null</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    <code>null</code>
                
                </td>
            

            <td class="description last"><p>The center of the ring to be created.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>startVertex</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>
|

<span class="param-type">null</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    <code>null</code>
                
                </td>
            

            <td class="description last"><p>The first vertex to be positioned inside the ring.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>previousVertex</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>
|

<span class="param-type">null</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    <code>null</code>
                
                </td>
            

            <td class="description last"><p>The last vertex that was positioned.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>previousVertex</code></td>
            

            <td class="type">
            
                
<span class="param-type">boolean</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    <code>false</code>
                
                </td>
            

            <td class="description last"><p>A boolean indicating whether or not this ring was force positioned already - this is needed after force layouting a ring, in order to draw rings connected to it.</p></td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id="draw"><span class="type-signature"></span>draw<span class="signature">(data, target, themeName, infoOnly)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line134">line 134</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Draws the parsed smiles data to a canvas element.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        
        <th>Default</th>
        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>data</code></td>
            

            <td class="type">
            
                
<span class="param-type">object</span>


            
            </td>

            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>The tree returned by the smiles parser.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>target</code></td>
            

            <td class="type">
            
                
<span class="param-type">string</span>
|

<span class="param-type">HTMLElement</span>


            
            </td>

            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>The id of the HTML canvas element the structure is drawn to - or the element itself.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>themeName</code></td>
            

            <td class="type">
            
                
<span class="param-type">string</span>


            
            </td>

            

            
                <td class="default">
                
                    <code>'dark'</code>
                
                </td>
            

            <td class="description last"><p>The name of the theme to use. Built-in themes are 'light' and 'dark'.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>infoOnly</code></td>
            

            <td class="type">
            
                
<span class="param-type">boolean</span>


            
            </td>

            

            
                <td class="default">
                
                    <code>false</code>
                
                </td>
            

            <td class="description last"><p>Only output info on the molecule without drawing anything to the canvas.</p></td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id="drawEdges"><span class="type-signature"></span>drawEdges<span class="signature">(debug)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line1787">line 1787</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Draw the actual edges as bonds to the canvas.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>debug</code></td>
            

            <td class="type">
            
                
<span class="param-type">boolean</span>


            
            </td>

            

            

            <td class="description last"><p>A boolean indicating whether or not to draw debug helpers.</p></td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id="drawVertices"><span class="type-signature"></span>drawVertices<span class="signature">(debug)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line1960">line 1960</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Draws the vertices representing atoms to the canvas.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>debug</code></td>
            

            <td class="type">
            
                
<span class="param-type">boolean</span>


            
            </td>

            

            

            <td class="description last"><p>A boolean indicating whether or not to draw debug messages to the canvas.</p></td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id="edgeRingCount"><span class="type-signature"></span>edgeRingCount<span class="signature">(edgeId)</span><span class="type-signature"> &rarr; {number}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line260">line 260</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns the number of rings this edge is a part of.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>edgeId</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>The id of an edge.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The number of rings the provided edge is part of.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">number</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="extend"><span class="type-signature"></span>extend<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line93">line 93</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>A helper method to extend the default options with user supplied ones.</p>
</div>

























        
            

    

    <h4 class="name" id="forceLayout"><span class="type-signature"></span>forceLayout<span class="signature">(vertices, center, startVertexId, ring)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line1358">line 1358</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Applies a force-based layout to a set of provided vertices.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertices</code></td>
            

            <td class="type">
            
                
<span class="param-type">array</span>


            
            </td>

            

            

            <td class="description last"><p>An array containing vertices to be placed using the force based layout.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>center</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vector2.html">Vector2</a></span>


            
            </td>

            

            

            <td class="description last"><p>The center of the layout.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>startVertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id. Should be the starting vertex - e.g. the first to be positioned and connected to a previously place vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>ring</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Ring.html">Ring</a></span>


            
            </td>

            

            

            <td class="description last"><p>The bridged ring associated with this force-based layout.</p></td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id="getBondCount"><span class="type-signature"></span>getBondCount<span class="signature">(vertex)</span><span class="type-signature"> &rarr; {number}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line3201">line 3201</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Gets the number of bonds of a vertex.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertex</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The number of bonds the vertex participates in.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">number</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getBridgedRingRings"><span class="type-signature"></span>getBridgedRingRings<span class="signature">(ringId)</span><span class="type-signature"> &rarr; {array}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line613">line 613</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns all rings connected by bridged bonds starting from the ring with the supplied ring id.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ringId</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>A ring id.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array containing all ring ids of rings part of a bridged ring system.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">array</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getBridgedRings"><span class="type-signature"></span>getBridgedRings<span class="signature">()</span><span class="type-signature"> &rarr; {array}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line273">line 273</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns an array containing the bridged rings associated with this  molecule.</p>
</div>























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array containing all bridged rings associated with this molecule.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">array</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getClosestEndpointVertex"><span class="type-signature"></span>getClosestEndpointVertex<span class="signature">(vertex)</span><span class="type-signature"> &rarr; {<a href="Vertex.html">Vertex</a>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line956">line 956</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns the closest vertex (connected as well as unconnected), which is an endpoint.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertex</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>The vertex of which to find the closest other vertex.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The closest endpoint vertex.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getClosestVertex"><span class="type-signature"></span>getClosestVertex<span class="signature">(vertex)</span><span class="type-signature"> &rarr; {<a href="Vertex.html">Vertex</a>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line928">line 928</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns the closest vertex (connected as well as unconnected).</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertex</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>The vertex of which to find the closest other vertex.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The closest vertex.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getCommonRingbondNeighbour"><span class="type-signature"></span>getCommonRingbondNeighbour<span class="signature">(vertex)</span><span class="type-signature"> &rarr; {number|null}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line3004">line 3004</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Gets the vetex sharing the edge that is the common bond of two rings.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertex</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The id of a vertex sharing the edge that is the common bond of two rings with the vertex provided or null, if none.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">number</span>
|

<span class="param-type">null</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getCommonRings"><span class="type-signature"></span>getCommonRings<span class="signature">(vertexA, vertexB)</span><span class="type-signature"> &rarr; {array}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line829">line 829</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns an array of ring ids shared by both vertices.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexA</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertexB</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array of ids of rings shared by the two vertices.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">array</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getCurrentCenterOfMass"><span class="type-signature"></span>getCurrentCenterOfMass<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Vector2.html">Vector2</a>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line2352">line 2352</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns the current (positioned vertices so far) center of mass.</p>
</div>























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The current center of mass.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="Vector2.html">Vector2</a></span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getCurrentCenterOfMassInNeigbourhood"><span class="type-signature"></span>getCurrentCenterOfMassInNeigbourhood<span class="signature">(vec, r<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Vector2.html">Vector2</a>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line2375">line 2375</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns the current (positioned vertices so far) center of mass in the neighbourhood of a given position.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        
        <th>Default</th>
        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vec</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vector2.html">Vector2</a></span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>The point at which to look for neighbours.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>r</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    <code>currentBondLength*2.0</code>
                
                </td>
            

            <td class="description last"><p>The radius of vertices to include.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The current center of mass.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="Vector2.html">Vector2</a></span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getEdgeNormals"><span class="type-signature"></span>getEdgeNormals<span class="signature">(edge)</span><span class="type-signature"> &rarr; {array}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line3124">line 3124</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Get the normals of an edge.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>edge</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Edge.html">Edge</a></span>


            
            </td>

            

            

            <td class="description last"><p>An edge.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array containing two vectors, representing the normals.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">array</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getEdgeWeight"><span class="type-signature"></span>getEdgeWeight<span class="signature">(vertexIdA, vertexIdB)</span><span class="type-signature"> &rarr; {number|null}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line1337">line 1337</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns the weight of the edge between two given vertices.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexIdA</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertexIdB</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The weight of the edge or, if no edge can be found, null.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">number</span>
|

<span class="param-type">null</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getFusedRings"><span class="type-signature"></span>getFusedRings<span class="signature">()</span><span class="type-signature"> &rarr; {array}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line290">line 290</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns an array containing all fused rings associated with this molecule.</p>
</div>























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array containing all fused rings associated with this molecule.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">array</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getHeavyAtomCount"><span class="type-signature"></span>getHeavyAtomCount<span class="signature">()</span><span class="type-signature"> &rarr; {number}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line375">line 375</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns the number of heavy atoms (non-hydrogen) in the current molecule.</p>
</div>























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The heavy atom count.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">number</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getLargestOrAromaticCommonRing"><span class="type-signature"></span>getLargestOrAromaticCommonRing<span class="signature">(vertexA, vertexB)</span><span class="type-signature"> &rarr; {<a href="Ring.html">Ring</a>|null}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line874">line 874</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns the aromatic or largest ring shared by the two vertices.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexA</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertexB</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>If an aromatic common ring exists, that ring, else the largest (non-aromatic) ring, else null.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="Ring.html">Ring</a></span>
|

<span class="param-type">null</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getNonRingNeighbours"><span class="type-signature"></span>getNonRingNeighbours<span class="signature">(vertexId)</span><span class="type-signature"> &rarr; {array}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line3217">line 3217</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns an array of vertices that are neighbouring a vertix but are not members of a ring (including bridges).</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array of vertices.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">array</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getOverlapScore"><span class="type-signature"></span>getOverlapScore<span class="signature">()</span><span class="type-signature"> &rarr; {object}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line1204">line 1204</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns the overlap score of the current molecule based on its positioned vertices. The higher the score, the more overlaps occur in the structure drawing.</p>
</div>























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>Returns the total overlap score and the overlap score of each vertex sorted by score (higher to lower). Example: { total: 99, scores: [ { id: 0, score: 22 }, ... ]  }</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">object</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getRing"><span class="type-signature"></span>getRing<span class="signature">(ringId)</span><span class="type-signature"> &rarr; {<a href="Ring.html">Ring</a>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line1069">line 1069</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Gets a ring object from the array of rings associated with the current molecule by its id. The ring id is not equal to the index, since rings can be added and removed when processing bridged rings.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ringId</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>A ring id.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A ring associated with the current molecule.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="Ring.html">Ring</a></span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getRingbondType"><span class="type-signature"></span>getRingbondType<span class="signature">(vertexA, vertexB)</span><span class="type-signature"> &rarr; {string|null}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line463">line 463</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns the type of the ringbond (e.g. '=' for a double bond). The ringbond represents the break in a ring introduced when creating the MST. If the two vertices supplied as arguments are not part of a common ringbond, the method returns null.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexA</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertexB</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>Returns the ringbond type or null, if the two supplied vertices are not connected by a ringbond.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">string</span>
|

<span class="param-type">null</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getRingConnections"><span class="type-signature"></span>getRingConnections<span class="signature">(ringId, ringIds)</span><span class="type-signature"> &rarr; {array}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line1139">line 1139</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Get the ring connections associated with a ring, the ring connections between two rings or the ring connections between one ring and multiple other rings.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        
        <th>Default</th>
        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ringId</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>A ring id.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>ringIds</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>
|

<span class="param-type">array</span>
|

<span class="param-type">null</span>


            
            </td>

            

            
                <td class="default">
                
                    <code>null</code>
                
                </td>
            

            <td class="description last"><p>A ring id, an array of ring ids or null.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array of ring connection ids.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">array</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getRingCount"><span class="type-signature"></span>getRingCount<span class="signature">()</span><span class="type-signature"> &rarr; {number}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line357">line 357</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns the ring count of the current molecule.</p>
</div>























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The ring count.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">number</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getSmallestCommonRing"><span class="type-signature"></span>getSmallestCommonRing<span class="signature">(vertexA, vertexB)</span><span class="type-signature"> &rarr; {<a href="Ring.html">Ring</a>|null}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line850">line 850</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns the smallest ring shared by the two vertices.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexA</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertexB</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>If a smallest common ring exists, that ring, else null.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="Ring.html">Ring</a></span>
|

<span class="param-type">null</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getSpiros"><span class="type-signature"></span>getSpiros<span class="signature">()</span><span class="type-signature"> &rarr; {array}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line307">line 307</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns an array containing all spiros associated with this molecule.</p>
</div>























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array containing all spiros associated with this molecule.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">array</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getSubringCenter"><span class="type-signature"></span>getSubringCenter<span class="signature">(ring, vertex)</span><span class="type-signature"> &rarr; {<a href="Vector2.html">Vector2</a>}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line1760">line 1760</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Gets the center of a ring contained within a bridged ring and containing a given vertex.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ring</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Ring.html">Ring</a></span>


            
            </td>

            

            

            <td class="description last"><p>A bridged ring.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertex</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vertex.html">Vertex</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vertex.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The center of the subring that  the provided vertex.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="Vector2.html">Vector2</a></span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getSubtreeOverlapScore"><span class="type-signature"></span>getSubtreeOverlapScore<span class="signature">(vertexId, parentVertexId, vertexOverlapScores)</span><span class="type-signature"> &rarr; {number}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line2328">line 2328</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Gets the overlap score of a subtree.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id (the root of the sub-tree).</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>parentVertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id in the previous direction of the subtree.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertexOverlapScores</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array</span>


            
            </td>

            

            

            <td class="description last"><p>An array containing the vertex overlap scores indexed by vertex id.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The overlap score of the subtree.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">number</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getTotalOverlapScore"><span class="type-signature"></span>getTotalOverlapScore<span class="signature">()</span><span class="type-signature"> &rarr; {number}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line348">line 348</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns the total overlap score of the current molecule.</p>
</div>























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The overlap score.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">number</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getTreeDepth"><span class="type-signature"></span>getTreeDepth<span class="signature">(vertexId, parentVertexId)</span><span class="type-signature"> &rarr; {number}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line3141">line 3141</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Get the depth of a subtree in the direction opposite to the vertex specified as the parent vertex.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>parentVertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>The id of a neighbouring vertex.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>The depth of the sub-tree.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">number</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="getVerticesAt"><span class="type-signature"></span>getVerticesAt<span class="signature">(position, radius, excludeVertexId)</span><span class="type-signature"> &rarr; {array}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line902">line 902</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns an array of vertices positioned at a specified location.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>position</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vector2.html">Vector2</a></span>


            
            </td>

            

            

            <td class="description last"><p>The position to search for vertices.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>radius</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>The radius within to search.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>excludeVertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id to be excluded from the search results.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>An array containing vertex ids in a given location.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">array</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="hasBridgedRing"><span class="type-signature"></span>hasBridgedRing<span class="signature">()</span><span class="type-signature"> &rarr; {boolean}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line366">line 366</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Checks whether or not the current molecule  a bridged ring.</p>
</div>























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A boolean indicating whether or not the current molecule  a bridged ring.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">boolean</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="initGraph"><span class="type-signature"></span>initGraph<span class="signature">(node, parentVertexId, isBranch)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line394">line 394</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Initializes the graph (vertices and edges) based on the tree supplied by the smiles parser.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        
        <th>Default</th>
        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>node</code></td>
            

            <td class="type">
            
                
<span class="param-type">object</span>


            
            </td>

            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>The current node in the parse tree.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>parentVertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            
                <td class="default">
                
                    <code>null</code>
                
                </td>
            

            <td class="description last"><p>The id of the previous vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>isBranch</code></td>
            

            <td class="type">
            
                
<span class="param-type">boolean</span>


            
            </td>

            

            
                <td class="default">
                
                    <code>false</code>
                
                </td>
            

            <td class="description last"><p>Whether or not the bond leading to this vertex is a branch bond. Branches are represented by parentheses in smiles (e.g. CC(O)C).</p></td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id="initPseudoElements"><span class="type-signature"></span>initPseudoElements<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line3242">line 3242</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Creates pseudo-elements (such as Et, Me, Ac, Bz, ...) at the position of the carbon sets
the involved atoms not to be displayed.</p>
</div>

























        
            

    

    <h4 class="name" id="initRings"><span class="type-signature"></span>initRings<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line492">line 492</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Initializes rings and ringbonds for the current molecule.</p>
</div>

























        
            

    

    <h4 class="name" id="isEdgeInAromaticRing"><span class="type-signature"></span>isEdgeInAromaticRing<span class="signature">(edge)</span><span class="type-signature"> &rarr; {boolean}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line3111">line 3111</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Checks whether or not an edge is part of an explicit aromatic ring (lower case smiles).</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>edge</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Edge.html">Edge</a></span>


            
            </td>

            

            

            <td class="description last"><p>An edge.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A boolean indicating whether or not the vertex is part of an explicit aromatic ring.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">boolean</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="isEdgeInRing"><span class="type-signature"></span>isEdgeInRing<span class="signature">(edge)</span><span class="type-signature"> &rarr; {boolean}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line3050">line 3050</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Check whether or not an edge is part of a ring.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>edge</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Edge.html">Edge</a></span>


            
            </td>

            

            

            <td class="description last"><p>An edge.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A boolean indicating whether or not the edge is part of a ring.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">boolean</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="isEdgeRotatable"><span class="type-signature"></span>isEdgeRotatable<span class="signature">(edge)</span><span class="type-signature"> &rarr; {boolean}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line3063">line 3063</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Check whether or not an edge is rotatable.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>edge</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Edge.html">Edge</a></span>


            
            </td>

            

            

            <td class="description last"><p>An edge.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A boolean indicating whether or not the edge is rotatable.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">boolean</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="isPartOfBridgedRing"><span class="type-signature"></span>isPartOfBridgedRing<span class="signature">(ringId)</span><span class="type-signature"> &rarr; {boolean}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line644">line 644</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Checks whether or not a ring is part of a bridged ring.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ringId</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>A ring id.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A boolean indicating whether or not the supplied ring (by id) is part of a bridged ring system.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">boolean</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="isPointInRing"><span class="type-signature"></span>isPointInRing<span class="signature">(vec)</span><span class="type-signature"> &rarr; {boolean}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line3024">line 3024</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Check if a vector is inside any ring.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vec</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vector2.html">Vector2</a></span>


            
            </td>

            

            

            <td class="description last"><p>A vector.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A boolean indicating whether or not the point (vector) is inside any of the rings associated with the current molecule.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">boolean</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="isRingAromatic"><span class="type-signature"></span>isRingAromatic<span class="signature">(ring)</span><span class="type-signature"> &rarr; {boolean}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line3093">line 3093</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Check whether or not a ring is an implicitly defined aromatic ring (lower case smiles).</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ring</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Ring.html">Ring</a></span>


            
            </td>

            

            

            <td class="description last"><p>A ring.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A boolean indicating whether or not a ring is implicitly defined as aromatic.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">boolean</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="isRingConnection"><span class="type-signature"></span>isRingConnection<span class="signature">(vertexIdA, vertexIdB)</span><span class="type-signature"> &rarr; {boolean}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line1183">line 1183</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Check whether or not the two vertices specified span a bond which is a ring connection (fused rings).</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexIdA</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertexIdB</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id.</p></td>
        </tr>

    
    </tbody>
</table>














<h5>Returns:</h5>

        
<div class="param-desc">
    <p>Returns a boolean indicating whether or not the two vertices specify a ringbond.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">boolean</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="position"><span class="type-signature"></span>position<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line2007">line 2007</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Position the vertices according to their bonds and properties.</p>
</div>

























        
            

    

    <h4 class="name" id="printRingInfo"><span class="type-signature"></span>printRingInfo<span class="signature">()</span><span class="type-signature"> &rarr; {string}</span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line324">line 324</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Returns a string containing a semicolon and new-line separated list of ring properties: Id; Members Count; Neighbours Count; IsSpiro; IsFused; IsBridged; Ring Count (subrings of bridged rings); Insiders Count (the number of vertices contained within a bridged ring)</p>
</div>























<h5>Returns:</h5>

        
<div class="param-desc">
    <p>A string as described in the method description.</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">string</span>


    </dd>
</dl>

    


        
            

    

    <h4 class="name" id="removeRing"><span class="type-signature"></span>removeRing<span class="signature">(ringId)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line1044">line 1044</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Removes a ring from the array of rings associated with the current molecule.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ringId</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>A ring id.</p></td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id="removeRingConnection"><span class="type-signature"></span>removeRingConnection<span class="signature">(ringConnectionId)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line1095">line 1095</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Removes a ring connection from the array of rings connections associated with the current molecule.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>ringConnectionId</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>A ring connection id.</p></td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id="removeRingConnectionsBetween"><span class="type-signature"></span>removeRingConnectionsBetween<span class="signature">(vertexIdA, vertexIdB)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line1107">line 1107</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Removes all ring connections between two vertices.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexIdA</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>vertexIdB</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id.</p></td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id="resolvePrimaryOverlaps"><span class="type-signature"></span>resolvePrimaryOverlaps<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line2396">line 2396</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Resolve primary (exact) overlaps, such as two vertices that are connected to the same ring vertex.</p>
</div>

























        
            

    

    <h4 class="name" id="resolveSecondaryOverlaps"><span class="type-signature"></span>resolveSecondaryOverlaps<span class="signature">(scores)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line2508">line 2508</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Resolve secondary overlaps. Those overlaps are due to the structure turning back on itself.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>scores</code></td>
            

            <td class="type">
            
                
<span class="param-type">array</span>


            
            </td>

            

            

            <td class="description last"><p>An array of objects sorted descending by score. An object is in the form of { id: 0, score: 22 }.</p></td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id="restorePositions"><span class="type-signature"></span>restorePositions<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line2060">line 2060</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Restore the positions backed up during the last clearPositions() call.</p>
</div>

























        
            

    

    <h4 class="name" id="restoreRingInformation"><span class="type-signature"></span>restoreRingInformation<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line2097">line 2097</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Restores the most recently backed up information associated with rings.</p>
</div>

























        
            

    

    <h4 class="name" id="rotateSubtree"><span class="type-signature"></span>rotateSubtree<span class="signature">(vertexId, parentVertexId, angle, center)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line2304">line 2304</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Rotate an entire subtree by an angle around a center.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id (the root of the sub-tree).</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>parentVertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>A vertex id in the previous direction of the subtree that is to rotate.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>angle</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            

            

            <td class="description last"><p>An angle in randians.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>center</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Vector2.html">Vector2</a></span>


            
            </td>

            

            

            <td class="description last"><p>The rotational center.</p></td>
        </tr>

    
    </tbody>
</table>
















        
            

    

    <h4 class="name" id="traverseTree"><span class="type-signature"></span>traverseTree<span class="signature">(vertexId, parentVertexId, callback, maxDepth<span class="signature-attributes">opt</span>, ignoreFirst<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>

    




<dl class="details">

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="SmilesDrawer.js.html">SmilesDrawer.js</a>, <a href="SmilesDrawer.js.html#line3170">line 3170</a>
    </li></ul></dd>
    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description">
    <p>Traverse a sub-tree in the graph.</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        
        <th>Default</th>
        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>vertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>A vertex id.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>parentVertexId</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>A neighbouring vertex.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>callback</code></td>
            

            <td class="type">
            
                
<span class="param-type">function</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>The callback function that is called with each visited as an argument.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>maxDepth</code></td>
            

            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    <code>null</code>
                
                </td>
            

            <td class="description last"><p>The maximum depth of the recursion. If null, there is no limit.</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>ignoreFirst</code></td>
            

            <td class="type">
            
                
<span class="param-type">boolean</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    <code>false</code>
                
                </td>
            

            <td class="description last"><p>Whether or not to ignore the starting vertex supplied as vertexId in the callback.</p></td>
        </tr>

    
    </tbody>
</table>
















        
    

    

    
</article>

</section>




</div>

<br class="clear">

<footer>
    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Thu May 25 2017 19:56:51 GMT+0200 (W. Europe Daylight Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
</footer>

<script>prettyPrint();</script>
<script src="scripts/linenumber.js"></script>
</body>
</html>